The problem is simply stated: When you unload a form, the forms behind the newly unloaded form do not repaint properly until Windows is allowed again to process events in the queue. While at first putting a "DoEvents" statement seems to fix the problem, this has other problems associated with it